←
▼
▲
Sub Prompt( TCHAR* Desc, HANDLE* out_Obj );
VBScript が実行できるプロンプトを開始します。
ソース
→ System.vbs
これまでにグローバル変数に設定していた値を参照することもできます。
Prompt 関数を呼び出した関数のローカル変数は参照できません。
参考
←
▼
▲
Play "sample.mp3"
Sub Play( Path as string )
音楽ファイルや効果音ファイルを鳴らします。
【引数】
Path
.wav, .mp3 などのファイルパス
(src)
動画ファイルを指定すると、音声だけが流れます。
Play env( "%windir%\Media\tada.wav" )
鳴らし始めると、すぐに Play 関数から戻り、音声が流れながらスクリプトの続きを実行します。
を使えば、音声が終わるまで待つことができます。
スクリプトを終了すると、音声は止まります。
サンプル
ファイル:
vbslib.vbs
テスト
関連
→ T_Sound.vbs # [T_Sound]
←
▼
▲
Play "sample.mp3"
WaitForSound Empty
Sub WaitForSound( Timeout_msec as integer )
で再生した音声が終わるまで待ちます。
【引数】
Timeout_msec
タイムアウト(ミリ秒)、または Empty (タイムアウトなし)
(src)
タイムアウトになったら、音声は停止します。
音声が終わるまで待つ
5秒たっても音声が終わらなかったら止める
Play "sample.mp3"
WaitForSound 5000
Play "sample.mp3"
WaitForSound 0
すぐに音声を止める
サンプル
サンプル
サンプル
Empty
5000
0
vbslib.vbs
ファイル:
テスト
→ T_Sound.vbs # [T_Sound]
関連
←
▼
▲
Sub SetVolume( Volume as integer )
音量を設定します。 0 が最小、100 が最大。
【引数】
Volume
音量。デフォルトは 100
(src)
SetVolume 100
関連
サンプル
vbslib.vbs
ファイル:
テスト
→ T_Sound.vbs # [T_Sound]
←
▼
▲
SystemSound ".Default"
Sub SystemSound( Sound as string )
コントロールパネルに設定されている効果音を鳴らします。
【引数】
Sound
効果音の種類(下記)
(src)
"SystemAsterisk"
メッセージ(情報)
".Default"
一般の警告音
メッセージ(警告)
"SystemExclamation"
システムエラー
"SystemHand"
メッセージ(問い合わせ)
"SystemQuestion"
Windowsの起動
"SystemStart"
Windowsの終了
"SystemExit"
Windowsログオン
"WindowsLogon"
"WindowsLogoff"
Windowsログオフ
"DeviceConnect"
デバイスの接続
"DeviceDisconnect"
デバイスの切断
"Navigating"
ナビゲーションの開始
(フォルダやハイパーリンクをクリックしたときの音)
音声の止め方や音量の調整は、
と同じです。
しなくても、すぐに音声は停止しません。
スクリプトを終了時に鳴らしても、数秒の効果音であれば、
サンプル
関連
テスト
→ T_Sound.vbs # [T_Sound]
←
▼
▲
Function GetTextFromClipboard() as string
クリップボードにあるテキストを返します。
→ T_Clipboard_Manually.vbs # [T_GetTextFromClipboard]
テスト
(src)
クリップボードにテキストが無ければ、E_BadType エラーになります。
ファイル:
vbslib.vbs
使用するには、vbslib フォルダーに、
が必要です。
←
▼
▲
Function GetPathOfClipboardText() as string
クリップボードにあるテキストをファイルに出力して、そのパスを返します。
→ T_Clipboard_Manually.vbs # [T_GetTextFromClipboard]
テスト
(src)
クリップボードにテキストが無ければ、E_BadType エラーになります。
ファイル:
vbslib.vbs
使用するには、vbslib フォルダーに、
が必要です。
サンプル
Set g = g_VBS_Lib
echo "Enter のみ:クリップボードの内容を入力とします。"
path = InputPath( "path>", g.CheckFileExists or g.CheckFolderExists or _
g.UseArgument1 or g.AllowEnterOnly )
is_clipboard = False
If path = "" Then path = GetPathOfClipboardText() : is_clipboard = True
If is_clipboard Then del path
クリップボードの内容が入ったファイルが不要になったら削除してください。
←
▼
▲
Sub SetTextToClipboard( Text as string )
クリップボードにテキストをコピーします。
(src)
→ T_Clipboard_Manually.vbs # [T_GetTextFromClipboard]
テスト
ファイル:
vbslib.vbs
使用するには、vbslib フォルダーに、
が必要です。
←
▼
▲
辞書に入っているデータをクイックソートします。
配列をクイックソートします。安定ソートではありません。
辞書に入っているデータをシェーカーソートします。
配列をシェーカーソートします。安定ソートです。
文字列を数値に変換します。
配列を扱いやすくするクラスです。
標準の Dictionary の Item を、配列にしたクラスです。
GUID を生成します。
ワイルドカードにマッチするかどうか判定します。
[ テスト ]
その他
関連
文字列を TextStream と同じようにアクセスします。
静的オブジェクトを取得します。
スクリプトファイルから静的オブジェクトを取得します。
スクリプトファイルから静的オブジェクトを一覧します。
静的オブジェクト・スクリプトファイルをインクルードします。
文字列で指定した名前のクラスのオブジェクトを生成します。
配列のすべての要素が等しいか判定します。
Dictionary を配列に変換します。
配列の要素を追加コピーします。
オブジェクトを生成して、辞書に追加します。
登録されていないときも、新規に登録しない辞書参照。
Empty でもオブジェクトでも取得できる辞書参照。
辞書を生成します。
辞書の要素を設定します。
辞書を加算します。
辞書を減算します。
コマンドラインの1項目を取り出し、通常の文字列に戻す。
配列を、NameOnlyClass の配列に変換します。
CSV 形式の1行を解析して、配列に格納する。
CSV 形式の1行を解析して、数値の配列に格納する。
定数
構造化された定数
他にもあります。左のツリーから選択してください。
←
▼
▲
vbslib で定義されている定数と一部の変数は、g_VBS_Lib オブジェクトのプロパティになっています。
これは、なるべくグローバル・スコープにおいてシンボルが重複しないようにするためです。
次のように、ローカル変数 c を使ってアクセスすることができます。
Sub FuncA()
Set c = g_VBS_Lib
If StrCompLastOf( "ABC", "BC", c.CaseSensitive ) = 0 Then ...
End Sub
g_VBS_Lib
CaseSensitive
定数の内容については、左のツリーからサブ・ツリーを参照してください。
(src)
参考
←
▼
▲
Dim g_VBS_Lib:CaseSensitive as integer
2つの英文字の文字列比較において、大文字・小文字を区別すること
CaseSensitive が指定できる引数に、CaseSensitive を指定しなかったときは、
大文字と小文字を同じ文字であるとして、文字列比較を行います。
参考
サンプル:
Set c = g_VBS_Lib
If StrComp( "ABC", "abc", StrCompOption( c.CaseSensitive ) ) = 0 Then ...
If StrCompLastOf( "ABC", "BC", c.CaseSensitive ) = 0 Then ...
←
▼
▲
Dim g_VBS_Lib:WholeWord as integer
文字列の検索において、単語全体がマッチするものだけヒットさせます。
(単語単位検索、完全一致)
参考
←
▼
▲
Dim g_VBS_Lib:LastNextPos as integer
検索した結果を、ヒットした位置の次の位置にします。
参考
ABCDE の中で C を検索したら、D の位置を検索した結果にします。
ABCDE の中で BCD を検索したら、E の位置を検索した結果にします。
←
▼
▲
vbslib の System.vbs で定義される
。
←
▼
▲
Dim g_VBS_Lib_System:NotExistFileMD5 as string
ファイルが存在しないことを明示的に示すときのハッシュ値。
値は、0が32桁の文字列です。
NotExistFileMD5 = "00000000000000000000000000000000"
→ System.vbs
ソース
関連
←
▼
▲
Dim a : Set a = new ArrayClass
a.Add 1
echo a(0)
echo "count = " & a.Count
VBScript 標準の配列 (プロパティ)
要素をすべて削除する
要素を最後に追加する
要素を最後に追加する
最後の要素を返し、配列から要素を削除する
要素数を返す
サンプル
メンバー
すべての要素を表示する
Dim item
For Each item In a.Items
echo item
Next
基本的な使い方:
For 文で使う:
配列を扱いやすくするクラスです。
要素は、オブジェクトでもそれ以外でも格納できます。
配列番号以外でも要素にアクセスできます。
a が ArrayClass オブジェクト
.Copy
すべての要素をコピーする
配列のすべての要素を文字列にする
配列の要素。 配列番号。 (デフォルト・プロパティ)
関連
→ T_Arr.vbs # [T_ArrClass]
テスト
While 文で使う:
Dim a : Set a = new ArrayClass
Dim iter : Set iter = a.NewIterator()
While iter.HasNext()
echo iter.GetNext()
WEnd
a が ArrayClass オブジェクト
iter は、ArrayClassIterator オブジェクト
→ ArraySpeed.vbs
性能比較
Dim arr : Set arr = new ArrayClass : arr.AddElems Array( 1, 2, 3 )
関連
→ vbslib.vbs
ソース
←
▼
▲
Function new_ArrayClass( InitialValues as array of variant ) as ArrayClass
配列から ArrayClass のオブジェクトを生成します。
【引数】
InitialValues
ArrayClass のオブジェクトの初期値の配列
返り値
ArrayClass のオブジェクト
ファイル:
vbslib.vbs
(src)
サンプル
Assert new_ArrayClass( Array( 1, 2, 3 ) ).CSV = "1,2,3"
サンプル
Set arr = new_ArrayClass( Array( 1, 2, 3 ) )
Assert arr(0) = 1
Assert arr(1) = 2
Assert arr(2) = 3
new_ArrayClass
←
▼
▲
Default Property ArrayClass::Item( i as integer )
配列番号を使って、配列の要素を参照します。 (デフォルト・プロパティ)
【引数】
i
配列の要素の番号。 先頭は 0
Dim a : Set a = new ArrayClass
a.Add 1
echo a(0) '// a.Item(0) と同じ
サンプル:
a(0)
オブジェクトを Set するときは、次のように記述してください。
Set a(0) = new ClassA
関連
ItemFunc プロパティに関数を登録すると、引数 i に文字列などを指定できるようになります。
(src)
i 引数が配列の要素数以上のときは、エラーになります。
←
▼
▲
Dim ArrayClass::ItemFunc as Function( Items as Array, Name as variant ) as variant
配列の要素を取得する関数。 Item プロパティにアクセスすると呼ばれる関数。
関連
Dim arr : Set arr = new ArrayClass
Set arr.ItemFunc = GetRef( "ClassA_getItem" )
Set obj = arr( "Name" )
Function ClassA_getItem( Items, Name )
Dim s
If IsNumeric( Name ) Then
Set ClassA_getItem = Items( Name )
Else
For Each s In Items
If s.Name = Name Then Set ClassA_getItem = s : Exit Function
Next
End If
End Function
サンプル:
Item デフォルト・プロパティにアクセスするときに、要素を決定する方法をカスタマイズできます。
→ T_Arr_Target # [T_ArrayCustom]
テスト
配列番号以外の数値型で要素を識別するとき
←
▼
▲
Dim ArrayClass::Items as array of variant
ArrayClass クラスがラップしている配列です。
要素は、オブジェクトでもそれ以外でも格納できます。
(src)
Dim arr : Set arr = new ArrayClass
Dim item
For Each item In arr.Items
echo item
Next
For 文で使う:
ソート関数に渡すときは、Items ではなく、ArrayClass オブジェクトを渡してください。
Dim arr : Set arr = new ArrayClass
:
ShakerSort
ShakerSort arr, 1, arr.UBound_, GetRef("CmpFunc1"), Empty
arr
arr
Items
←
▼
▲
(src)
Items と同じです。
廃止される予定です。
←
▼
▲
Sub ArrayClass::ReDim_( UBound as integer )
配列の要素数を変更します。 ReDim Preserve と同じです。
【引数】
UBound
新しい配列の最大要素番号
(src)
ReDim の末尾にアンダースコアが付いています。
(ReDim は予約語であるため。)
←
▼
▲
Sub ArrayClass::Add( Elem as variant )
配列の最後に要素を追加します。
【引数】
Elem
配列に追加する要素(オブジェクト、またはそれ以外)
ArrayClass::Push と同じです。
Elem に配列を指定すると、ArrayClass の中の1つの要素の中に Elem 配列を追加します。
ArrayClass の中に複数の要素を追加するときは、AddElem を使ってください。
→ AddElems (ArrayClass)
関連
←
▼
▲
Dim a
Set a = New ArrayClass
a.Add 1
a.AddElems Array( 2, 3 )
'// a は、{ 1, 2, 3 }
AddElems
(src)
関連
←
▼
▲
Set objects = new ArrayClass
Set o = objects.AddNewObject( "ClassA", "ObjectA" )
Class ClassA
Public Name
End Class
Function new_ClassA()
Set new_ClassA = new ClassA
End Function
すでに同じ名前のオブジェクトが配列にあっても、オブジェクトを生成します。
関連
テスト
→ [T_AddNewObj]
内部で
を使っているので、たとえば、ClassA に対して new_ClassA 関数の定義が必要です。
ClassName に指定したクラスに、Name プロパティ、またはメンバー変数が必要です。